package com.iflytek.iot.common.monitor;

import com.iflytek.iot.common.monitor.model.MonitorArgs;
import com.iflytek.iot.common.monitor.model.MonitorName;

import java.util.function.Function;

/**
 * 监控回调,一般用于被动提供状态信息
 *
 * @author zurun
 * @date 2020/7/13 10:54:48
 */
public interface MonitorCallback {

    default void register() {
        MonitorRegister.register(this);
    }

    /**
     * 主动上报
     */
//    void initiativeReport();

    /**
     * 被动上报
     */
    void passiveReport(Function<MonitorArgs, Boolean> function);

    MonitorName getName();
}
